home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / xalan.jar / org / apache / xalan / xslt / Process.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-12  |  10.9 KB  |  459 lines

  1. package org.apache.xalan.xslt;
  2.  
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileOutputStream;
  6. import java.io.FileWriter;
  7. import java.io.IOException;
  8. import java.io.ObjectInputStream;
  9. import java.io.ObjectOutputStream;
  10. import java.io.OutputStream;
  11. import java.io.PrintWriter;
  12. import java.io.UnsupportedEncodingException;
  13. import java.lang.reflect.Constructor;
  14. import java.net.MalformedURLException;
  15. import java.net.URL;
  16. import java.util.ResourceBundle;
  17. import java.util.TooManyListenersException;
  18. import org.apache.xalan.xpath.XPathException;
  19. import org.apache.xalan.xpath.xml.XMLParserLiaison;
  20. import org.apache.xalan.xpath.xml.XSLMessages;
  21. import org.apache.xalan.xslt.res.XSLTErrorResources;
  22. import org.apache.xalan.xslt.trace.PrintTraceListener;
  23. import org.apache.xalan.xslt.trace.TraceListener;
  24. import org.w3c.dom.Document;
  25. import org.w3c.dom.Node;
  26. import org.xml.sax.InputSource;
  27. import org.xml.sax.SAXException;
  28.  
  29. public class Process {
  30.    protected static void printArgOptions(XSLTErrorResources var0) {
  31.       System.out.println(((ResourceBundle)var0).getString("xslProc_option"));
  32.       System.out.println(((ResourceBundle)var0).getString("optionIN"));
  33.       System.out.println(((ResourceBundle)var0).getString("optionXSL"));
  34.       System.out.println(((ResourceBundle)var0).getString("optionOUT"));
  35.       System.out.println(((ResourceBundle)var0).getString("optionLXCIN"));
  36.       System.out.println(((ResourceBundle)var0).getString("optionLXCOUT"));
  37.       System.out.println(((ResourceBundle)var0).getString("optionPARSER"));
  38.       System.out.println(((ResourceBundle)var0).getString("optionV"));
  39.       System.out.println(((ResourceBundle)var0).getString("optionQC"));
  40.       System.out.println(((ResourceBundle)var0).getString("optionQ"));
  41.       System.out.println(((ResourceBundle)var0).getString("optionLF"));
  42.       System.out.println(((ResourceBundle)var0).getString("optionCR"));
  43.       System.out.println(((ResourceBundle)var0).getString("optionESCAPE"));
  44.       System.out.println(((ResourceBundle)var0).getString("optionINDENT"));
  45.       System.out.println(((ResourceBundle)var0).getString("optionTT"));
  46.       System.out.println(((ResourceBundle)var0).getString("optionTG"));
  47.       System.out.println(((ResourceBundle)var0).getString("optionTS"));
  48.       System.out.println(((ResourceBundle)var0).getString("optionTTC"));
  49.       System.out.println(((ResourceBundle)var0).getString("optionTCLASS"));
  50.       System.out.println(((ResourceBundle)var0).getString("optionVALIDATE"));
  51.       System.out.println(((ResourceBundle)var0).getString("optionEDUMP"));
  52.       System.out.println(((ResourceBundle)var0).getString("optionXML"));
  53.       System.out.println(((ResourceBundle)var0).getString("optionTEXT"));
  54.       System.out.println(((ResourceBundle)var0).getString("optionHTML"));
  55.       System.out.println(((ResourceBundle)var0).getString("optionPARAM"));
  56.       System.out.println("[-MEDIA use media attribute to find stylesheet associated with a document.]");
  57.       System.out.println("[-SX (User Xerces Serializers]");
  58.    }
  59.  
  60.    public static void main(String[] var0) {
  61.       Runtime.getRuntime().traceMethodCalls(false);
  62.       boolean var1 = false;
  63.       boolean var2 = false;
  64.       PrintWriter var3 = new PrintWriter(System.err, true);
  65.       PrintWriter var4 = var3;
  66.       XSLTErrorResources var5 = (XSLTErrorResources)XSLMessages.loadResourceBundle("org.apache.xalan.xslt.res.XSLTErrorResources");
  67.       if (var0.length < 1) {
  68.          printArgOptions(var5);
  69.       } else {
  70.          String var7 = "org.apache.xalan.xpath.dtm.DTMLiaison";
  71.  
  72.          XMLParserLiaison var6;
  73.          try {
  74.             boolean var8 = true;
  75.  
  76.             for(int var9 = 0; var9 < var0.length; ++var9) {
  77.                if ("-PARSER".equalsIgnoreCase(var0[var9])) {
  78.                   ++var9;
  79.                   var7 = var0[var9];
  80.                   var8 = false;
  81.                }
  82.             }
  83.  
  84.             Class var10 = Class.forName(var7);
  85.             Constructor var11 = var10.getConstructor((Class[])null);
  86.             var6 = (XMLParserLiaison)var11.newInstance((Object[])null);
  87.          } catch (Exception var58) {
  88.             System.err.println(XSLMessages.createMessage(25, new Object[]{var7}));
  89.             return;
  90.          }
  91.  
  92.          XSLTProcessor var60 = XSLTProcessorFactory.getProcessor(var6);
  93.          boolean var61 = false;
  94.          String var63 = null;
  95.          String var64 = null;
  96.          String var12 = null;
  97.          String var13 = null;
  98.          String var14 = null;
  99.          String var15 = null;
  100.          Object var16 = null;
  101.          boolean var17 = false;
  102.          boolean var18 = false;
  103.          boolean var19 = false;
  104.          PrintTraceListener var20 = null;
  105.          FileOutputStream var21 = null;
  106.          ObjectOutputStream var22 = null;
  107.          String var23 = null;
  108.          String var24 = null;
  109.  
  110.          for(int var25 = 0; var25 < var0.length; ++var25) {
  111.             if ("-TT".equalsIgnoreCase(var0[var25])) {
  112.                if (var20 == null) {
  113.                   var20 = new PrintTraceListener(var3);
  114.                }
  115.  
  116.                var20.m_traceTemplates = true;
  117.             } else if ("-TG".equalsIgnoreCase(var0[var25])) {
  118.                if (var20 == null) {
  119.                   var20 = new PrintTraceListener(var3);
  120.                }
  121.  
  122.                var20.m_traceGeneration = true;
  123.             } else if ("-TS".equalsIgnoreCase(var0[var25])) {
  124.                if (var20 == null) {
  125.                   var20 = new PrintTraceListener(var3);
  126.                }
  127.  
  128.                var20.m_traceSelection = true;
  129.             } else if ("-TTC".equalsIgnoreCase(var0[var25])) {
  130.                if (var20 == null) {
  131.                   var20 = new PrintTraceListener(var3);
  132.                }
  133.  
  134.                var20.m_traceElements = true;
  135.             } else if ("-TCLASS".equalsIgnoreCase(var0[var25])) {
  136.                if (var25 + 1 < var0.length) {
  137.                   ++var25;
  138.                   String var26 = var0[var25];
  139.  
  140.                   try {
  141.                      Class var27 = Class.forName(var26);
  142.                      Constructor var28 = var27.getConstructor((Class[])null);
  143.                      TraceListener var29 = (TraceListener)var28.newInstance((Object[])null);
  144.                      var60.addTraceListener(var29);
  145.                   } catch (Exception var48) {
  146.                      System.err.println(XSLMessages.createMessage(29, new Object[]{var26}));
  147.                   }
  148.                } else {
  149.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-TCLASS"}));
  150.                }
  151.             } else if ("-ESCAPE".equalsIgnoreCase(var0[var25])) {
  152.                if (var25 + 1 < var0.length) {
  153.                   ++var25;
  154.                   var6.setSpecialCharacters(var0[var25]);
  155.                } else {
  156.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-ESCAPE"}));
  157.                }
  158.             } else if ("-INDENT".equalsIgnoreCase(var0[var25])) {
  159.                int var68;
  160.                if (var25 + 1 < var0.length && var0[var25 + 1].charAt(0) != '-') {
  161.                   ++var25;
  162.                   var68 = Integer.parseInt(var0[var25]);
  163.                } else {
  164.                   var68 = 0;
  165.                }
  166.  
  167.                var6.setIndent(var68);
  168.             } else if ("-IN".equalsIgnoreCase(var0[var25])) {
  169.                if (var25 + 1 < var0.length) {
  170.                   ++var25;
  171.                   var63 = var0[var25];
  172.                } else {
  173.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-IN"}));
  174.                }
  175.             } else if ("-MEDIA".equalsIgnoreCase(var0[var25])) {
  176.                if (var25 + 1 < var0.length) {
  177.                   ++var25;
  178.                   var24 = var0[var25];
  179.                } else {
  180.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-MEDIA"}));
  181.                }
  182.             } else if ("-OUT".equalsIgnoreCase(var0[var25])) {
  183.                if (var25 + 1 < var0.length) {
  184.                   ++var25;
  185.                   var64 = var0[var25];
  186.                } else {
  187.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-OUT"}));
  188.                }
  189.             } else if ("-XSL".equalsIgnoreCase(var0[var25])) {
  190.                if (var25 + 1 < var0.length) {
  191.                   ++var25;
  192.                   var13 = var0[var25];
  193.                } else {
  194.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-XSL"}));
  195.                }
  196.             } else if ("-LXCIN".equalsIgnoreCase(var0[var25])) {
  197.                if (var25 + 1 < var0.length) {
  198.                   ++var25;
  199.                   var15 = var0[var25];
  200.                } else {
  201.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-LXCIN"}));
  202.                }
  203.             } else if ("-LXCOUT".equalsIgnoreCase(var0[var25])) {
  204.                if (var25 + 1 < var0.length) {
  205.                   ++var25;
  206.                   var14 = var0[var25];
  207.                } else {
  208.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-LXCOUT"}));
  209.                }
  210.             } else if ("-PARAM".equalsIgnoreCase(var0[var25])) {
  211.                if (var25 + 2 < var0.length) {
  212.                   ++var25;
  213.                   String var69 = var0[var25];
  214.                   ++var25;
  215.                   String var71 = var0[var25];
  216.                   var60.setStylesheetParam(var69, var71);
  217.                } else {
  218.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-PARAM"}));
  219.                }
  220.             } else if ("-treedump".equalsIgnoreCase(var0[var25])) {
  221.                if (var25 + 1 < var0.length) {
  222.                   ++var25;
  223.                   String var10000 = var0[var25];
  224.                } else {
  225.                   System.err.println(XSLMessages.createMessage(89, new Object[]{"-treedump"}));
  226.                }
  227.             } else if ("-F".equalsIgnoreCase(var0[var25])) {
  228.                var61 = true;
  229.             } else if ("-E".equalsIgnoreCase(var0[var25])) {
  230.                var6.setShouldExpandEntityRefs(false);
  231.             } else if ("-V".equalsIgnoreCase(var0[var25])) {
  232.                var3.println(((ResourceBundle)var5).getString("version") + XSLProcessorVersion.S_VERSION + ", " + var6.getParserDescription() + ((ResourceBundle)var5).getString("version2"));
  233.             } else if ("-QC".equalsIgnoreCase(var0[var25])) {
  234.                var60.setQuietConflictWarnings(true);
  235.             } else if ("-Q".equalsIgnoreCase(var0[var25])) {
  236.                var2 = true;
  237.             } else if ("-VALIDATE".equalsIgnoreCase(var0[var25])) {
  238.                String var70;
  239.                if (var25 + 1 < var0.length && var0[var25 + 1].charAt(0) != '-') {
  240.                   ++var25;
  241.                   var70 = var0[var25];
  242.                } else {
  243.                   var70 = "yes";
  244.                }
  245.  
  246.                var6.setUseValidation(var70.equalsIgnoreCase("yes"));
  247.             } else if ("-PARSER".equalsIgnoreCase(var0[var25])) {
  248.                ++var25;
  249.             } else if ("-XML".equalsIgnoreCase(var0[var25])) {
  250.                var23 = "xml";
  251.             } else if ("-TEXT".equalsIgnoreCase(var0[var25])) {
  252.                var23 = "text";
  253.             } else if ("-HTML".equalsIgnoreCase(var0[var25])) {
  254.                var23 = "html";
  255.             } else if ("-STRIPCDATA".equalsIgnoreCase(var0[var25])) {
  256.                var17 = true;
  257.             } else if ("-ESCAPECDATA".equalsIgnoreCase(var0[var25])) {
  258.                var18 = true;
  259.             } else if ("-ESCAPECDATA".equalsIgnoreCase(var0[var25])) {
  260.                var19 = true;
  261.             } else if ("-EDUMP".equalsIgnoreCase(var0[var25])) {
  262.                var1 = true;
  263.                if (var25 + 1 < var0.length && var0[var25 + 1].charAt(0) != '-') {
  264.                   ++var25;
  265.                   var12 = var0[var25];
  266.                }
  267.             } else {
  268.                System.err.println(XSLMessages.createMessage(90, new Object[]{var0[var25]}));
  269.             }
  270.          }
  271.  
  272.          try {
  273.             var60.setDiagnosticsOutput(var2 ? null : var3);
  274.             if (var12 != null) {
  275.                var4 = new PrintWriter(new FileWriter(var12));
  276.             }
  277.  
  278.             StylesheetRoot var72 = null;
  279.             if (var15 != null) {
  280.                try {
  281.                   FileInputStream var77 = new FileInputStream(var15);
  282.                   ObjectInputStream var30 = new ObjectInputStream(var77);
  283.                   var72 = (StylesheetRoot)var30.readObject();
  284.                   var30.close();
  285.                } catch (UnsupportedEncodingException var47) {
  286.                   Object var73 = null;
  287.                   var3.println(XSLMessages.createMessage(28, new Object[]{((StylesheetRoot)var73).m_encoding}));
  288.                   throw new XSLProcessorException(XSLMessages.createMessage(28, new Object[]{((StylesheetRoot)var73).m_encoding}));
  289.                }
  290.             } else if (var13 != null) {
  291.                var72 = var60.processStylesheet(var13);
  292.             }
  293.  
  294.             Object var78 = null;
  295.             if (var64 != null) {
  296.                var78 = new FileOutputStream(var64);
  297.             }
  298.  
  299.             if (var78 == null) {
  300.                var78 = System.out;
  301.             }
  302.  
  303.             if (var72 != null) {
  304.                if (var23 != null) {
  305.                   var72.setOutputMethod(var23);
  306.                }
  307.  
  308.                var72.m_useXercesSerializers = var19;
  309.             }
  310.  
  311.             if (var20 != null) {
  312.                var60.addTraceListener(var20);
  313.             }
  314.  
  315.             if (var63 != null) {
  316.                if (var72 != null) {
  317.                   Node var79 = var60.getSourceTreeFromInput(new XSLTInputSource(var63));
  318.                   var72.process(var60, var79, new XSLTResultTarget((OutputStream)var78));
  319.                } else if (var24 != null) {
  320.                   StylesheetSpec var80 = var60.getAssociatedStylesheet(new XSLTInputSource(var63), var24, (String)null);
  321.                   if (var80 == null) {
  322.                      throw new XSLProcessorException("No stylesheet found for media: " + var24);
  323.                   }
  324.  
  325.                   if (((InputSource)var80).getSystemId() != null) {
  326.                      URL var31 = var60.getXMLProcessorLiaison().getURLFromString(((InputSource)var80).getSystemId(), var63);
  327.                      ((InputSource)var80).setSystemId(var31.toExternalForm());
  328.                   }
  329.  
  330.                   var60.process(new XSLTInputSource(var63), var80, new XSLTResultTarget((OutputStream)var78));
  331.                } else {
  332.                   var60.process(new XSLTInputSource(var63), (XSLTInputSource)null, new XSLTResultTarget((OutputStream)var78));
  333.                }
  334.             } else if (var72 != null && var14 == null) {
  335.                Document var81 = var6.createDocument();
  336.                var72.process(var60, var81, new XSLTResultTarget((OutputStream)var78));
  337.             }
  338.  
  339.             if (var72 != null && var14 != null) {
  340.                var21 = new FileOutputStream(var14);
  341.                var22 = new ObjectOutputStream(var21);
  342.                var22.writeObject(var72);
  343.             }
  344.          } catch (TooManyListenersException var49) {
  345.             if (var1) {
  346.                ((Throwable)var49).printStackTrace(var4);
  347.             }
  348.  
  349.             var3.println(XSLMessages.createMessage(27, (Object[])null));
  350.          } catch (XPathException var50) {
  351.             if (var1) {
  352.                var50.printStackTrace(var4);
  353.             }
  354.  
  355.             if (var50.getStylesheetNode() != null && var50.getStylesheetNode() instanceof ElemTemplateElement) {
  356.                ElemTemplateElement var76 = (ElemTemplateElement)var50.getStylesheetNode();
  357.                var3.println(var76.m_stylesheet.m_baseIdent + "; " + ((ResourceBundle)var5).getString("line") + var76.m_lineNumber + "; " + ((ResourceBundle)var5).getString("column") + var76.m_columnNumber + "; " + var50.getMessage());
  358.             } else if (var50 instanceof XSLProcessorException) {
  359.                var3.println("XSLT: " + var50.getMessage());
  360.             } else {
  361.                var3.println("XPATH: " + var50.getMessage());
  362.             }
  363.  
  364.             var3.println(XSLMessages.createMessage(27, (Object[])null));
  365.          } catch (SAXException var51) {
  366.             Exception var75 = var51.getException();
  367.             if (var75 != null) {
  368.                if (var1) {
  369.                   ((Throwable)var75).printStackTrace(var4);
  370.                }
  371.  
  372.                var3.println(XSLMessages.createMessage(27, (Object[])null));
  373.             } else {
  374.                if (var1) {
  375.                   ((Throwable)var51).printStackTrace(var4);
  376.                }
  377.  
  378.                var3.println(XSLMessages.createMessage(27, (Object[])null));
  379.             }
  380.          } catch (MalformedURLException var52) {
  381.             if (var1) {
  382.                ((Throwable)var52).printStackTrace(var4);
  383.             } else {
  384.                System.out.println("Error! " + ((Throwable)var52).getMessage());
  385.             }
  386.  
  387.             var3.println(XSLMessages.createMessage(27, (Object[])null));
  388.          } catch (ClassNotFoundException var53) {
  389.             if (var1) {
  390.                ((Throwable)var53).printStackTrace(var4);
  391.             } else {
  392.                System.out.println("Error! " + ((Throwable)var53).getMessage());
  393.             }
  394.  
  395.             var3.println(XSLMessages.createMessage(27, (Object[])null));
  396.          } catch (FileNotFoundException var54) {
  397.             if (var1) {
  398.                ((Throwable)var54).printStackTrace(var4);
  399.             } else {
  400.                System.out.println("Error! " + ((Throwable)var54).getMessage());
  401.             }
  402.  
  403.             var3.println(XSLMessages.createMessage(27, (Object[])null));
  404.          } catch (IOException var55) {
  405.             if (var1) {
  406.                ((Throwable)var55).printStackTrace(var4);
  407.             } else {
  408.                System.out.println("Error! " + ((Throwable)var55).getMessage());
  409.             }
  410.  
  411.             var3.println(XSLMessages.createMessage(27, (Object[])null));
  412.          } catch (NoClassDefFoundError var56) {
  413.             String var74 = ((Throwable)var56).getMessage();
  414.             if (var74.indexOf("com/ibm/xml/parser/Parser") >= 0) {
  415.                var3.println("==========================================");
  416.                var3.println(((ResourceBundle)var5).getString("noParsermsg1"));
  417.                var3.println(((ResourceBundle)var5).getString("noParsermsg2"));
  418.                var3.println(((ResourceBundle)var5).getString("noParsermsg3"));
  419.                var3.println(((ResourceBundle)var5).getString("noParsermsg4"));
  420.                var3.println(((ResourceBundle)var5).getString("noParsermsg5"));
  421.                var3.println("==========================================");
  422.             } else {
  423.                if (var1) {
  424.                   ((Throwable)var56).printStackTrace(var4);
  425.                } else {
  426.                   System.out.println("Error! " + ((Throwable)var56).getMessage());
  427.                }
  428.  
  429.                var3.println(XSLMessages.createMessage(27, (Object[])null));
  430.             }
  431.          } finally {
  432.             try {
  433.                if (var22 != null) {
  434.                   var22.flush();
  435.                   var22.close();
  436.                }
  437.  
  438.                if (var21 != null) {
  439.                   ((OutputStream)var21).flush();
  440.                   var21.close();
  441.                }
  442.             } catch (Exception var46) {
  443.             }
  444.  
  445.          }
  446.  
  447.          if (var12 != null) {
  448.             var4.close();
  449.          }
  450.  
  451.          if (!var2) {
  452.             var3.println(((ResourceBundle)var5).getString("xsldone"));
  453.          } else {
  454.             var3.println("");
  455.          }
  456.       }
  457.    }
  458. }
  459.